<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
/**
 * 1.全局作用域   
 * 2.函数作用域     
 * 3.执行上下文 
 * 4.变量对象
 * 5.变量初始化阶段 1.初始化阶段 2.代码执行阶段
 *   >函数参数(若未有传入,初始化该参数值为undefined)
 *   >函数声明(若发生命名冲突,会覆盖)
 *   >变量声明(初始化变量值为undefined,若发生命名冲突,会忽略)
 */
   
   //理解,执行上下文
  
/* console.log('Test0');
    //函数1
    function funTest1(){

         console.log('Test1');
       //函数2   
      function funTest2(){

           console.log('Test2');
       //函数3 
        function funTest3(){

            console.log('Test3');
        }
       funTest3();
      }
      funTest2();
    }
    funTest1();*/


/**
   理解 变量对象(Variable Object 缩写VO)
   变量对象是一个抽象的概念,指的是在全局作用域下或者是在函数作用域下,作
   用于函数或变量的初始化工作。*/

/*   function test(a,b){//顺序 首先是参数声明,函数数声明,变量的声明
      
      var  c = 10;
      function d(){}
      var e=function _e(){}//函数表达式名字不会VO。
      b=20;

   }

  //2.代码执行阶段
   test(10);
        VO(test){
        a:10,
        b:20,
        c:10,
        d:function(){},
        e:function(){}    
      }*/

    //题目一
    
/*    function foo(z){//z = 100
          function z(){          
          }
          document.write(z);
    }

    foo(100);*/

   
    //题目二
/*    function foo(x){
         function func(){}
         var func;
         document.write(func);
    }
    foo(100);*/


    //题目三
/*    function foo(x){
         function func(){};
         var func=1;
         document.write(func)
    }
foo(100);*/

    
  /*  //题目四
    alert(x);//function(){} 1 2 3 4
    var x = 10;
    alert(x);//10 1 2 3 4
    x=20;
    function x(){}
    alert(x);//1,4》20  2》function(){} 3》undefind
    if(true){
       var a = 1;
    }else{
       var b = true;
    }
    alert(a);//1   1,2,3,4
    alert(b);//2>报错 1,4,3>undefined */


//字符串操作方法
//连接多个字符串，并返回新字符串
concat(str1...str2)

//concat 方法（String）返回字符串值，该值包含了两个或更多个提供的字符串的连接。
slice(n,m)
var val="hello,world!";
document.write(val.slice(0,5));//得到hello

//返回位于 String 对象中指定位置的子字符串。 方法用于提取字符串中介于两个指定下标之间的字符。
substring(n,m)
var val="hello,world!";
document.write(val.substring(0,5));//得到hello

//返回一个从指定位置开始的指定长度的子字符串。(n可以为负数)
substr(n,m)
var val="hello,world!";
document.write(val.substr(6,11));

//字符串位置方法
//返回 String 对象内第一次出现子字符串的字符位置。 
indexOf(str, n)
var val="hello,world!hello,boy!hello,girl!";
document.write(val.indexOf("h", 1));//返回12


//返回 String 对象中子字符串最后出现的位置。
lastIndexOf(str, n)//第二个参数制定搜索的结束位置，从0开始检索，得到最后一个被检索的下标
var val="hello,world!hello,boy!hello,girl!";
document.write(val.lastIndexOf("h", 5));//返回0



//大小写转换方法
//返回一个字符串，该字符串中的字母被转换为小写字母。
 toLowerCase(str)
var val="hHello,world!hHello,boy!hHello,girl!";
document.write(val.toLowerCase());
//返回一个字符串，该字符串中的所有字母都被转化为大写字母。
toUpperCase(str)
var val="hHello,world!hHello,boy!hHello,girl!";
document.write(val.toUpperCase());

toLocaleLowerCase(str)

toLocaleupperCase(str)




//字符串的模式匹配方法
//使用正则表达式模式对字符串执行查找，并将包含查找的结果作为数组返回。
match(pattern)//返回一个数组或null
var val=/[a-z]/ig;
var goods="abcdefg1234abcdef";
console.log(goods.match(val));//返回["a", "b", "c", "d", "e", "f", "g", "a", "b", "c", "d", "e", "f"]


replace(pattern, replacement)

//返回与正则表达式查找内容匹配的第一个子字符串的位置。
search(pattern)
var val=/\d/;
var goods="abcdefg1234abcdef";
console.log(goods.search(val));//返回7


//将一个字符串分割为子字符串，然后将结果作为字符串数组返回。
split(pattern)
var val='铅笔,钢笔,橡皮,圆珠笔';
var goods=val.split(',');
var good=val.split(/,/);
document.write(goods+good);//铅笔,钢笔,橡皮,圆珠笔铅笔,钢笔,橡皮,圆珠笔


//其他方法 
fromCharCode(ascii)



//返回一个值，指出在当前的区域设置中两个字符串是否相同。
localeCompare(str1,str2)



//HTML 方法      
anchor(name)

big()

blink()

bold()

fixed()

fontcolor(color)

fontsize(size)

link(URL)

small()

strike()

italics()

sub()

sup()




</script>

</body>
</html>